package com.weixing.mall.provider.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.weixing.mall.provider.model.domain.Order;
import com.weixing.mall.provider.model.vo.report.customer.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author jzy
 * @date 2020/6/12
 */
@Mapper
public interface DayReportCustomerMapper extends BaseMapper<Order> {

    /**
     *客服部报表-01财务日报/03正价财务日报/04代理商活动财务日报
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerReportFinanceVo> customerFinance(Page page, @Param("ew") Wrapper<?> var2);
    /**
     *客服部报表-01财务日报/03正价财务日报/04代理商活动财务日报--导出
     * @param var2
     * @return
     */
    List<CustomerReportFinanceVo> customerFinanceExport(@Param("ew") Wrapper<?> var2);
    /**
     *客服部报表-01财务日报/03正价财务日报/04代理商活动财务日报---计算合计时使用
     * @param var2
     * @return
     */
    CustomerReportFinanceVo customerFinanceSum(@Param("ew") Wrapper<?> var2);

    /**
     *日报详情--查询订单表
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerReportDetailVo>  getDayReportDetail(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 获取订单的map
     * @param var2
     * @return
     */
    Map<String, Object> getOrderMap(@Param("ew") Wrapper<?> var2);

    /**
     * 客服部报表-2折扣日报
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerReportDiscountVo>  customerDiscount(Page page, @Param("ew") Wrapper<?> var2);
    IPage<CustomerReportDiscountVo>  customerDiscount2(Page page, @Param("ew") Wrapper<?> var2, @Param("roleType")Integer roleType,
                                                       @Param("startTime") String startTime,@Param("endTime")String endTime,
                                                       @Param("agentId")Long agentId,@Param("agentPid")Long agentPid);

    /**
     * 获取所有代理商折扣
     * @return
     */
    List<BigDecimal> discountList();
    /**
     * 客服部报表-2折扣日报---合计
     * @param var2
     * @return
     */
    CustomerReportDiscountVo customerDiscountSum(@Param("ew") Wrapper<?> var2);

    /**
     * 客服部报表-2折扣日报-查看个人
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerReportDiscountPersonVo>  customerDiscountPerson(Page page, @Param("ew") Wrapper<?> var2);
    /**
     * 查询代理商的广告
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerAdvertisementDetailVo> customerDiscountAds(@Param("pg") Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 5客服部报表--秒杀活动日报
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerSeckillDayReportVo>  customerSeckill(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 计算秒杀活动日报的团队返还款
     * @param startTime
     * @param endTime
     * @param roleType
     * @param agentId
     * @return
     */
    BigDecimal sumTeamRebate(String startTime,String endTime,Integer roleType,Long agentId);


    /**
     * 5客服部报表--秒杀活动日报-合计
     * @param var2
     * @return
     */
    CustomerSeckillDayReportVo  customerSeckillSum(@Param("ew") Wrapper<?> var2);


    /**
     * 客服部报表--6客户报表
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerUserReportVo>  customerUserReport(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 客服部报表--6客户报表-查看购买记录
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerUserReportBuyLogVo>  customerUserReportBuyLog(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 客服部报表--7秒杀活动报表
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerSeckillReportVo>  customerSeckillReport(Page page, @Param("ew") Wrapper<?> var2);
    /**
     * 客服部报表--8正价销售报表
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerReportRegularVo>  customerReportRegular(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 客服部报表--8正价销售报表-合计
     * @param var2
     * @return
     */
    CustomerReportRegularVo customerReportRegularSum(@Param("ew") Wrapper<?> var2);
    /**
     * 客服部报表--9退货报表
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerRefundReportVo>  customerRefundReport(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 客服部报表--10会员销售报表
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerBuyerReportVo>  customerBuyerReport(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 客服部报表--11秒杀活动返还款报表
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerSeckillRebateVo>  customerSeckillRebate(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 客服部报表--11秒杀活动返还款报表-合计
     * @param var2
     * @return
     */
    CustomerSeckillRebateVo  customerSeckillRebateSum( @Param("ew") Wrapper<?> var2);
    /**
     * 客服部报表--11秒杀活动返还款报表-查看20%返回款
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerSeckillRebateAllVo>  customerSeckillRebateAll(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 客服部报表--11秒杀活动返还款报表-查看20%返回款-合计
     * @param var2
     * @return
     */
    CustomerSeckillRebateAllVo  customerSeckillRebateAllSum( @Param("ew") Wrapper<?> var2);

    /**
     * 11客服部报表--秒杀活动返还款报表--返还款20%订单详情
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerSeckillRebateDetailVo>  customerSeckillRebateDetail(Page page, @Param("ew") Wrapper<?> var2);

    /**
     * 11客服部报表--秒杀活动返还款报表--查看2%分红（一级分红）
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerSeckillBonusOneVo>  customerSeckillBonusOne(Page page, @Param("ew") Wrapper<?> var2);
    /**
     * 11客服部报表--秒杀活动返还款报表--查看1%分红（二级分红）
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerSeckillBonusTwoVo>  customerSeckillBonusTwo(Page page, @Param("ew") Wrapper<?> var2);
    /**
     * 11客服部报表--秒杀活动返还款报表--分红订单详情
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerSeckillBonusDetailVo>  customerSeckillBonusDetail(Page page, @Param("ew") Wrapper<?> var2);
    /**
     * 12客服部报表--12代理商销售排行榜
     * @param page
     * @param var2
     * @return
     */
    IPage<CustomerReportAgentRankingVo>  customerReportAgentRanking(Page page, @Param("ew") Wrapper<?> var2);


}
